package com.naiterui.ehp.bs.doctor.dao;

import com.naiterui.common.repository.page.Page;
import com.naiterui.ehp.bp.domain.Doctor;

import java.util.*;

public interface IDoctorDao {

    Doctor get(Long doctorId);

    void update(Doctor doctor);

    void saveOrUpdate(Doctor doctor);

    Long save(Doctor doctor);

    /**
     * <根据手机号查记录>
     *
     * @param phone
     * @return Doctor <返回值描述>
     * @Throws 异常信息
     * @History 2015-8-31 下午2:55:47 by guoyongxiang
     */
    Doctor getDoctorByPhone(String phone);

    Doctor getDoctorByUserId(Long doctorId);

    /**
     * 按照指定时间获取，该时间之前的未登陆的医生信息
     * IDoctorDao.findUnLoginByTime()
     *
     * @param start
     * @param end
     * @param pageNo
     * @param pageSize
     * @return
     * @Author chenlin
     * @Date 2016年3月28日
     * @since 1.0.0
     */
    Page<Doctor> findUnLoginByTime(Date start, Date end, int pageNo, int pageSize);

    /**
     * 获取医生map(id,实体)
     * IDoctorDao.getDoctorMap()
     *
     * @param doctorIds
     * @return
     * @Date 2016年3月29日
     * @since 2.2.1
     */
    Map<Long, Doctor> getDoctorMap(Set<Long> doctorIds);


    /**
     * 根据医生ID信息获取特殊价格显示医生城市信息(城市信息为ODC端配置的特殊城市ID)
     * IDoctorDao.getDrSpecialCity()
     *
     * @param drIds
     * @return
     * @Author fangguanhong
     * @Date 2017年11月14日
     * @since 1.0.0
     */
    Map<Long, Integer> getDrSpecialCity(String drIds);

    /**
     * 查询指定医生列表
     * IDoctorDao.getDoctors()
     *
     * @param doctorIds
     * @return
     * @Author Amber
     * @Date 2018年1月16日
     * @since 1.0.0
     */
    List<Doctor> getDoctors(Collection<Long> doctorIds);


}